﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CaptureVision.Sunflower
{
    /// <summary>
    /// Scalar vector generic Property.
    /// </summary>
    /// <typeparam name="TPropertyType">The type of the property type.</typeparam>
    public class Vec1Property<TPropertyType> : VectorProperty<Vec1<TPropertyType>, TPropertyType>
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="Vec1Property&lt;TPropertyType&gt;"/> class.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="elementNames">The element names.</param>
         public Vec1Property(string name, params string[] elementNames)
            : base(name, elementNames)
        { }

         /// <summary>
         /// Initializes a new instance of the <see cref="Vec1Property&lt;TPropertyType&gt;"/> class.
         /// </summary>
         /// <param name="name">The name.</param>
         /// <param name="vector">The vector.</param>
         /// <param name="elementNames">The element names.</param>
         public Vec1Property(string name, Vec1<TPropertyType> vector, params string[] elementNames)
             : base(name,
                    vector,
                    elementNames)
         { }

         /// <summary>
         /// Initializes a new instance of the <see cref="Vec1Property&lt;TPropertyType&gt;"/> class.
         /// </summary>
         /// <param name="name">The name.</param>
         /// <param name="x">The x.</param>
         /// <param name="elementNames">The element names.</param>
        public Vec1Property(string name, TPropertyType x, params string[] elementNames)
            : base(name, 
                   new Vec1<TPropertyType>() {X = x}, 
                   elementNames)
        { }
    }

   
}
